#ifndef MYRGB_H
#define MYRGB_H

#include <iostream>
using namespace std;

class Pixel
{
public:
	// Constructors
	Pixel();
	Pixel(const int r, const int g, const int b);
	Pixel(const Pixel &value);
	~Pixel();

	// Assignment operator
	const Pixel& operator = (const Pixel &value);

	// Calculation operators
	Pixel operator + (const Pixel &value);
	Pixel operator - (const Pixel &value);
	Pixel operator * (const Pixel &value);
	Pixel operator * (const int &num);
	Pixel operator / (const int &num);

	// IO-stream operators
	friend istream &operator >> (istream& input, Pixel  & value);
	friend ostream &operator << (ostream& output, const Pixel & value);

	//We implement Logical operators for you. Do not change them.
    	// Logical operator
    	bool operator == (const Pixel &value)
	{
        	if (red != value.red || green != value.green || blue != value.blue)
                	return false;
	        return true;
	}
    	bool operator != (const Pixel &value)
	{
	        return (*this == value) ? false : true;		
	}

private:
	int red;
	int green;
	int blue;
};

#endif
